/**
 * Timeless - tasks.h
 */
#ifndef __TASKLESS__
#define __TASKLESS__

#include "resource.h"

class GlobalTimer : public Action {
    public:
        AUTO_SIZE;
        
        static float dT;
        static unsigned long thisFrame;
        static unsigned long lastFrame;
        
        bool start();
        void update();
        void stop();
};

class Audio : public Action {
    public:
        bool start();
        void onSleep();
        void update();
        void onWake();
        void stop();
        
        AUTO_SIZE;
        
    protected:
        bool paused;
};

class InputHandler : public Action {
    public:
        InputHandler();
        ~InputHandler();
        
        bool start();
        void update();
        void stop();
        
        AUTO_SIZE;
}

class Renderer : public Action {
    public:
        Renderer();
        ~Renderer();
        
        AUTO_SIZE;
        
        static int scrX, scrY, scrBPP;
        static Thinglike<SimpleForm<int> > screenWidth, screenHeight, screenBPP;
        
        bool start();
        void update();
        void stop();
        
}
        

#endif /* TASKLESS */
